package com.bh.dispatch.domain;

import com.baomidou.mybatisplus.annotation.TableName;
import com.bh.common.annotation.Dict;
import com.bh.common.annotation.Excel;
import com.bh.common.core.domain.BhtmsBaseEntity;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * 提派单对象 jc_dispatch, 主要用于对提派单进行增删改查
 *
 * 派车单：主要是为了在预录单的过程中将货物从客户运送到网点
 * @author slx
 * @date 2024-02-20
 */
@TableName("jc_dispatch")
@ApiModel(value = "提派单对象", description = "提派单对象")
@EqualsAndHashCode(callSuper = true)
@Data
public class JcDispatch extends BhtmsBaseEntity implements Serializable
{
    

    /** 结算方式 */
    @ApiModelProperty("结算方式")
    @Excel(name = "结算方式")
    private Long accountType;

    /** 计划时间 */
    @ApiModelProperty("计划时间")
    @JsonFormat(timezone="GMT+8", pattern = "yyyy-MM-dd")
    @Excel(name = "计划时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date dateBilling;

    /** 提派信息 */
    @ApiModelProperty("提派信息")
    @Excel(name = "提派信息")
    private String toSendInfo;

    /** 承运商 */
    @Dict(dictTable = "jc_carrier", dictLabel = "name", dictValue = "id")
    @ApiModelProperty("承运商")
    @Excel(name = "承运商")
    private Long jcCarrierId;

    /** 临时司机 */
    @ApiModelProperty("临时司机")
    @Excel(name = "临时司机")
    private String driverTemporary;

    /** 临时车牌号 */
    @ApiModelProperty("临时车牌号")
    @Excel(name = "临时车牌号")
    private String vehicleheadTemporary;

    /** 组织网点 */
    @Dict(dictTable = "jc_sys_organization", dictLabel = "name", dictValue = "id")
    @ApiModelProperty("组织网点")
    @Excel(name = "组织网点")
    private Long jcOrganizationId;

    /** 承运类型 */
    @ApiModelProperty("承运类型")
    @Excel(name = "承运类型")
    private Long carrierType;

    /** 临时司机电话 */
    @ApiModelProperty("临时司机电话")
    @Excel(name = "临时司机电话")
    private String driverIphoneTemporary;

    /** 实际出发点击时间 */
    @ApiModelProperty("实际出发点击时间")
    @JsonFormat(timezone="GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "实际出发点击时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date planClickEndTime;

    /** 实际结束点击时间 */
    @ApiModelProperty("实际结束点击时间")
    @JsonFormat(timezone="GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "实际结束点击时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date planClickStartTime;

    /** 实际结束时间 */
    @ApiModelProperty("实际结束时间")
    @JsonFormat(timezone="GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "实际结束时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date planEndTime;

    /** 实际出发时间 */
    @ApiModelProperty("实际出发时间")
    @JsonFormat(timezone="GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "实际出发时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date planStartTime;

    /** 司机ID */
    @ApiModelProperty("司机ID")
    @Excel(name = "司机ID")
    private Long jcDriverId;

    /** 司机姓名 */
    @ApiModelProperty("司机姓名")
    @Excel(name = "司机姓名")
    private String driver;

    /** 司机电话 */
    @ApiModelProperty("司机电话")
    @Excel(name = "司机电话")
    private String driverIphone;

    /** 车牌号 */
    @ApiModelProperty("车牌号")
    @Excel(name = "车牌号")
    private String vehicleHead;

    /** 车辆ID */
    @ApiModelProperty("车辆ID")
    @Excel(name = "车辆ID")
    private Long jcVehicleId;

    /** 车头ID */
    @ApiModelProperty("车头ID")
    @Excel(name = "车头ID")
    private Long jcVehicleheadId;

    /** 金额 */
    @ApiModelProperty("金额")
    @Excel(name = "金额")
    private BigDecimal cost;

    /** 税率 */
    @ApiModelProperty("税率")
    @Excel(name = "税率")
    private BigDecimal rate;

    /** 税金 */
    @ApiModelProperty("税金")
    @Excel(name = "税金")
    private BigDecimal taxes;

    /** 承运商是否超期 */
    @ApiModelProperty("承运商是否超期")
    @Excel(name = "承运商是否超期")
    private Integer isOverdueCarrier;

    /** 是否有异常 */
    @ApiModelProperty("是否有异常")
    @Excel(name = "是否有异常")
    private Integer isAbnormail;

    /** 件数 */
    @ApiModelProperty("件数")
    @Excel(name = "件数")
    private Integer number;

    /** 体积 */
    @ApiModelProperty("体积")
    @Excel(name = "体积")
    private BigDecimal volume;

    /** 重量 */
    @ApiModelProperty("重量")
    @Excel(name = "重量")
    private BigDecimal weight;

    /** 重泡比 */
    @ApiModelProperty("重泡比")
    @Excel(name = "重泡比")
    private String rebubbleRatio;

    /** 代收货款 */
    @ApiModelProperty("代收货款")
    @Excel(name = "代收货款")
    private BigDecimal agent;

    /** 打印次数 */
    @ApiModelProperty("打印次数")
    @Excel(name = "打印次数")
    private Long printCount;

    /** 到付款 */
    @ApiModelProperty("到付款")
    private BigDecimal arrivePay;
}
